<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>1_react的事件处理</title>
  </head>
  <body>
    <!-- 准备好一个容器 -->
    <div id="root"></div>

    <!-- 引入react核心库 -->
    <script type="text/javascript" src="../js/react.development.js"></script>
    <!-- 引入react-dom 用于支持react操作dom -->
    <script
      type="text/javascript"
      src="../js/react-dom.development.js"
    ></script>
    <!-- 引入babel 将js转换成jsx -->
    <script type="text/javascript" src="../js/babel.min.js"></script>

    <!-- type="text/babel" 表示写的是 jsx 使用babel 翻译 -->
    <script type="text/babel">
      // 1.创建组件
      class MyComponent extends React.Component {
        /*
            (1).通过oXxx属性指定事件处理函数（注意大小写）
                a.React使用的是自定义（合成）事件，而不是使用的原生DoM事件 --- 为了更好的兼容性
                b,React中的事件是通过事件委托方式处理的（委托给组件最外层的元素）---  为了高效
            (2).通过event.target得到发生事件的DoM元素对象 --- 不要过度使用ref
        */
        myRef = React.createRef();
        render() {
          return (
            <div>
              <input ref={this.myRef} type="text" />
              <button onClick={this.clickAlertData}>点我输出数据</button>
            </div>
          );
        }

        clickAlertData = () => {
          console.log(this.myRef.current.value);
          alert(this.myRef.current.value);
        };
      }

      // 2.渲染页面到元素
      ReactDOM.render(<MyComponent />, document.getElementById("root"));
    </script>
  </body>
</html>
